#define _CRT_SECURE_NO_WARNINGS  1
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

typedef int datatype;

typedef struct SlistNode
{
	datatype data;
	struct SlistNode* next;
}SlistNode;

SlistNode* BuyNewNode(datatype x);
void SlistPushBack(SlistNode** phead, datatype x);
void SlistPrint(SlistNode* phead);
void SlistPushFront(SlistNode** phead, datatype x);
void SlistPopBack(SlistNode** phead);
void SlistPopFront(SlistNode** phead);
SlistNode* SlistFind(SlistNode* phead, datatype x);
void Freeposx(SlistNode** phead, SlistNode* pos);
void Insertposx(SlistNode** phead, SlistNode* pos,datatype x);
void InsertposAfter(SlistNode** phead, SlistNode* pos,datatype x);
void FreeposAfter(SlistNode** phead, SlistNode* pos);
void SlistDestroy(SlistNode**phead);